package helperx

import (
	"net"
)

// IsInternalIp 是否为内网IP
func IsInternalIp(ip string) bool {
	// 判断阿里云vpc地址段
	_, n, _ := net.ParseCIDR("192.168.0.0/16")
	if n.Contains(net.ParseIP(ip)) {
		return true
	}

	// 判断k8s pod地址段，测试集群
	_, n2, _ := net.ParseCIDR("10.140.0.0/16")
	if n2.Contains(net.ParseIP(ip)) {
		return true
	}

	// 判断k8s service地址段，测试集群
	_, n3, _ := net.ParseCIDR("172.16.0.0/16")
	if n3.Contains(net.ParseIP(ip)) {
		return true
	}

	// 判断k8s pod地址段，生产集群
	_, n4, _ := net.ParseCIDR("172.18.0.0/16")
	if n4.Contains(net.ParseIP(ip)) {
		return true
	}

	// 判断k8s service地址段，生产集群
	_, n5, _ := net.ParseCIDR("172.31.0.0/20")
	if n5.Contains(net.ParseIP(ip)) {
		return true
	}

	return false
}
